NOTE: PROCEDURE PRINTTO used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

3    
4    DM "log; clear; ";
5    DM 'odsresults; clear';
6    
7    %global projectrootdirectory;
8    %let projectrootdirectory=C:/Users/hpham13/Projects/mf_activism/empirical;
9    
10   *Creates your local Libraries;
11   libname rawdata "&projectrootdirectory./0_input/original";
NOTE: Libref RAWDATA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\0_input\original
12   libname rawdata2 "&projectrootdirectory./0_input/original/finaldatadepvars";
NOTE: Libref RAWDATA2 was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: 
      C:\Users\hpham13\Projects\mf_activism\empirical\0_input\original\finaldatadepvars
13   libname save "&projectrootdirectory./0_input/final";
NOTE: Libref SAVE was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\0_input\final
14   
15   %let datadirectory= C:/Users/hpham13/data ;
16   
17   libname lnk "&datadirectory./Linking_tables/";
NOTE: Libref LNK was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\Linking_tables
18   libname ceo "&datadirectory./ceo/";
NOTE: Libref CEO was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\ceo
19   libname activism "&datadirectory./activism/" ;
NOTE: Libref ACTIVISM was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\activism
20   libname comp "&datadirectory./compustat/fundq/";
NOTE: Libref COMP was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\compustat\fundq
21   libname compa "&datadirectory./compustat/funda/";
NOTE: Libref COMPA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\compustat\funda
22   libname ibes "&datadirectory./IBES";
NOTE: Libref IBES was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\IBES
23   
24   * include some macros;
25   %include "&datadirectory./utils/do_over.sas";
332  %include "&datadirectory./utils/ff48.sas";
404  %include "&datadirectory./utils/ff49.sas";
477  %include "&datadirectory./utils/ff12.sas";
516  %include "&datadirectory./utils/winsorize.sas";
604   %include "&datadirectory./utils/lags.sas";
783   
784   
785   /* ************************************************************************ */
786   /* ***********************  PART 1: IMPORT DATA  ************************** */
787   /* ************************************************************************ */
788   
789   %let fname = 062325_negCAR ;
790   * cutoff 1%;
791   data stockpick; set rawdata2.stkpick&fname.;
792       label relstkpick1="RelInformedTrade cutoff 1%" ;
793   run;

NOTE: There were 120283 observations read from the data set RAWDATA2.STKPICK062325_NEGCAR.
NOTE: The data set WORK.STOCKPICK has 120283 observations and 26 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.00 seconds
      

794   proc sort nodupkey; by gvkey rdq; run;

NOTE: There were 120283 observations read from the data set WORK.STOCKPICK.
NOTE: 907 observations with duplicate key values were deleted.
NOTE: The data set WORK.STOCKPICK has 119376 observations and 26 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
      

795   
796   /* 2. merge stacked data and others */
797   data stacked_data; set rawdata.stacked_data_111624; run;

NOTE: There were 50730 observations read from the data set RAWDATA.STACKED_DATA_111624.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 52 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.03 seconds
      

798   
799   * make the cohort year ;
800   data stacked_data; set stacked_data;
801       if qd_rel = 0 then _cohort_y = fyearq; else _cohort_y = 0;
802   run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

803   proc sql;
804       create table stacked_data as
805       select *, max(_cohort_y) as cohort_y label='Cohort Year'
806       from stacked_data
807       group by cid ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.STACKED_DATA created, with 50730 rows and 54 columns.

808   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.05 seconds
      cpu time            0.06 seconds
      

809   data stacked_data; set stacked_data;
810       drop _cohort_y ;
811   run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

812   proc sort data=stacked_data; by cid pairid treated qd_rel; run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds
      

813   
814   * activism data;
815   data pilot; set activism.ca_details_95_pilot; run;

NOTE: There were 9262 observations read from the data set ACTIVISM.CA_DETAILS_95_PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds
      

816   proc sort data=pilot nodupkey; by  gvkey CAMPAIGN_ID ; run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.11 seconds
      cpu time            0.10 seconds
      

817   
818   *check if two campaigns happens during the period of 8 quarters ;
819   proc sort data=pilot;
820       by gvkey ANNOUNCE_DATE;
821   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.09 seconds
      

822   data pilot; set pilot;
823       by gvkey ;
824       ANNOUNCE_DATE_l = lag(ANNOUNCE_DATE);
825       if first.gvkey then ANNOUNCE_DATE_l=.;
826       format ANNOUNCE_DATE_l YYMMDD10. ;
827       * count the number of quarters;
828       days_diff = intck('day', ANNOUNCE_DATE_l, ANNOUNCE_DATE);
829       if ANNOUNCE_DATE_l = . then days_diff = . ;
830       if days_diff ne . then quarter_diff = days_diff/30 ;
831           else quarter_diff = . ;
832       format quarter_diff comma8.1;
833   run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4328 at 828:17   
NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 150 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
      

834   
835   proc sort data=pilot out=pilot;
836       by gvkey descending ANNOUNCE_DATE;
837   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 150 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.11 seconds
      

838   
839   data pilot;
840       set pilot;
841       by gvkey;
842       retain ANNOUNCE_DATE_f;
843       if first.gvkey then ANNOUNCE_DATE_f = .;
844       ANNOUNCE_DATE_f = lag(ANNOUNCE_DATE);
845       if first.gvkey then ANNOUNCE_DATE_f = .;
846       output;
847   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 151 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
      

848   
849   data pilot;
850       set pilot;
851       format ANNOUNCE_DATE_f YYMMDD10. ;
852       * count the number of quarters;
853       days_diff_2 = intck('day', ANNOUNCE_DATE, ANNOUNCE_DATE_f);
854       if ANNOUNCE_DATE = . then days_diff_2 = . ;
855       if days_diff_2 ne . then quarter_diff_2 = days_diff_2/30 ;
856           else quarter_diff_2 = . ;
857       format quarter_diff_2 comma8.1;
858   run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4328 at 853:19   
NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 153 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
      

859   
860   proc sort data=pilot out=pilot;
861       by gvkey ANNOUNCE_DATE;
862   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 153 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.09 seconds
      

863   
864   
865   * other activism vars;
866   data sharkwatch;
867       set activism.tohai_activists_12032023;
868   run;

NOTE: There were 3023 observations read from the data set ACTIVISM.TOHAI_ACTIVISTS_12032023.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

869   proc sort data=sharkwatch nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 3023 observations read from the data set WORK.SHARKWATCH.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

870   
871   data sharkwatch;
872       set sharkwatch;
873       drop fyear sic2;
874   run;

WARNING: The variable fyear in the DROP, KEEP, or RENAME list has never been referenced.
WARNING: The variable sic2 in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: There were 3023 observations read from the data set WORK.SHARKWATCH.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

875   proc sort data=sharkwatch nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 3023 observations read from the data set WORK.SHARKWATCH.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

876   
877   * Activist prior experience;
878   data activist_prior_exp;
879       set rawdata.activist_prior_exp;
880   run;

NOTE: There were 2110 observations read from the data set RAWDATA.ACTIVIST_PRIOR_EXP.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 2110 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

881   
882   %let qd = (year(ANNOUNCE_DATE)*4  + qtr(ANNOUNCE_DATE) - 1925*4);
883   data activist_prior_exp; set activist_prior_exp ;
884       if ANNOUNCE_DATE ne . then do ;
885           qd = &qd;
886       end;
887   run;

NOTE: There were 2110 observations read from the data set WORK.ACTIVIST_PRIOR_EXP.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 2110 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

888   proc sort data=activist_prior_exp nodupkey; by gvkey year qd; run;

NOTE: There were 2110 observations read from the data set WORK.ACTIVIST_PRIOR_EXP.
NOTE: 227 observations with duplicate key values were deleted.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 1883 observations and 21 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

889   
890   /* Merge data */
891   proc sql;
892       create table stacked_data2 as
893       select  a.*, b.*, c.*, d.prior_exp,
894               d.mean_prior_exp_sic2, d.med_prior_exp_sic2,
895               d.med_NUMBER_CAMPAIGNS, d.mean_NUMBER_CAMPAIGNS,
896               d.med_ACTIVIST_THREAT_RATING, d.mean_ACTIVIST_THREAT_RATING
897       from    stacked_data as a left join pilot as b
898       on      a.gvkey=b.gvkey and
899               a.FACTSET_ENTITY_ID=b.FACTSET_ENTITY_ID and
900               a.CAMPAIGN_ID=b.CAMPAIGN_ID
901       left join sharkwatch as c
902       on      a.CAMPAIGN_ID=c.CAMPAIGN_ID
903       left join activist_prior_exp as d
904       on      a.gvkey=d.gvkey and a.qd=d.qd ;
WARNING: Variable CAMPAIGN_ID already exists on file WORK.STACKED_DATA2.
WARNING: Variable ANNOUNCE_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable FILING_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable END_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable FACTSET_ENTITY_ID already exists on file WORK.STACKED_DATA2.
WARNING: Variable ENTITY_PROPER_NAME already exists on file WORK.STACKED_DATA2.
WARNING: Variable gvkey already exists on file WORK.STACKED_DATA2.
WARNING: Variable CAMPAIGN_ID already exists on file WORK.STACKED_DATA2.
NOTE: Table WORK.STACKED_DATA2 created, with 50730 rows and 210 columns.

905   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           2.93 seconds
      cpu time            3.07 seconds
      

906   proc sort data=stacked_data2 nodupkey; by cID PairID treated qd_rel ; run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.STACKED_DATA2 has 50730 observations and 210 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           1.22 seconds
      cpu time            1.00 seconds
      

907   
908   * create the SIC2 ;
909   data stacked_data2;
910       set stacked_data2;
911       sic_num = input(sic, 8.);
912       sic2 = floor(sic/100);
913   run;

NOTE: Character values have been converted to numeric values at the places given by: 
      (Line):(Column).
      912:18   
NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA2.
NOTE: The data set WORK.STACKED_DATA2 has 50730 observations and 212 variables.
NOTE: DATA statement used (Total process time):
      real time           0.73 seconds
      cpu time            0.65 seconds
      

914   
915   * count the number of campaigns per sic2-year ;
916   proc sql;
917       create table stacked_data2 as
918       select
919           a.*, b.number_campaigns_ind, b.avg_campaigns_ind, b.med_campaigns_ind,
919 ! b.sd_campaigns_ind,
920           b.med_activist_threat_rating, b.sum_activist_threat_rating,
920 ! b.avg_activist_threat_rating
921       from stacked_data2 as a
922       left join (
923       select distinct CAMPAIGN_ID, sic2, year
924           , sum( number_campaigns) as number_campaigns_ind label="N campaigns (industry)"
925           , mean( number_campaigns) as avg_campaigns_ind format comma8.3
926           , median( number_campaigns) as med_campaigns_ind format comma8.2
927           , std( number_campaigns) as sd_campaigns_ind format comma8.2
928           , median(activist_threat_rating) as med_activist_threat_rating format comma8.2
929           , avg(activist_threat_rating) as avg_activist_threat_rating format comma8.2
930           , sum(activist_threat_rating) as sum_activist_threat_rating format comma8.2
931           from stacked_data2
932           group by sic2, year
933           having number_campaigns ne . and activist_threat_rating ne .
934           ) as b
935       on  a.CAMPAIGN_ID=b.CAMPAIGN_ID and
936           a.sic2=b.sic2 and
937           a.year=b.year  ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable med_activist_threat_rating already exists on file WORK.STACKED_DATA2.
NOTE: Table WORK.STACKED_DATA2 created, with 50730 rows and 218 columns.

938   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           2.76 seconds
      cpu time            2.64 seconds
      

939   
940   
941   /* ************************************************************************ */
942   /* ********************  PART 2: MERGE FUNDQ, FUNDA  ********************** */
943   /* ************************************************************************ */
944   * Merge stacked data and MFF stock picking ability;
945   proc sql;
946       create table Analysis as
947       select  a.*, b.*
948       from    stacked_data2 as a left join stockpick as b
949       on      a.gvkey=b.gvkey and a.rdq=b.rdq ;
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable datadate already exists on file WORK.ANALYSIS.
WARNING: Variable rdq already exists on file WORK.ANALYSIS.
WARNING: Variable qd already exists on file WORK.ANALYSIS.
WARNING: Variable year already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 50730 rows and 239 columns.

950   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.78 seconds
      cpu time            1.75 seconds
      

951   proc sort data=Analysis nodupkey; by cID PairID treated gvkey datadate; run;

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 50730 observations and 239 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           1.00 seconds
      cpu time            0.98 seconds
      

952   
953   * handle outliers;
954   data Analysis; set Analysis; fyear=year(datadate); run;

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 50730 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.70 seconds
      cpu time            0.67 seconds
      

955   %winsor(dsetin=work.Analysis, dsetout=work.Analysis, byvar=none, vars=relstkpick1,
955 ! type=trim, pctl=1 99);

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.XTEMP has 50730 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.63 seconds
      cpu time            0.54 seconds
      


NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 50730 observations and 241 variables.
NOTE: DATA statement used (Total process time):
      real time           0.65 seconds
      cpu time            0.61 seconds
      


NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 50730 observations and 241 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           1.10 seconds
      cpu time            1.04 seconds
      

NOTE: Writing HTML Body file: sashtml.htm

NOTE: The data set WORK.XTEMP_PCTL has 1 observations and 3 variables.
NOTE: PROCEDURE UNIVARIATE used (Total process time):
      real time           0.68 seconds
      cpu time            0.39 seconds
      


NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: There were 1 observations read from the data set WORK.XTEMP_PCTL.
NOTE: The data set WORK.ANALYSIS has 50390 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.67 seconds
      cpu time            0.64 seconds
      

956   data Analysis; set Analysis; drop fyear ; run;

NOTE: There were 50390 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 50390 observations and 239 variables.
NOTE: DATA statement used (Total process time):
      real time           0.71 seconds
      cpu time            0.65 seconds
      

957   proc sql;
957 !           drop table xtemp, xtemp_pctl;
NOTE: Table WORK.XTEMP has been dropped.
NOTE: Table WORK.XTEMP_PCTL has been dropped.
957 !                                         quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds
      

958   
959   data fundq_clean;
960       set rawdata.comp_fundq_clean;
961       keep gvkey rdq datadate fyearq fyr fqtr be /*me*/ bd ppegtq PnI saleq to dlttq dlcq
962       oibdpq oiadpq pm ic tacq revq drevq drevadjq ppeq roaq roaq_lag1 me ml bm
963       atq_lag1 saleq_lag1 rectq_lag1 ibq ibq_lag1 size size_l lvrg_l lvrg seqq ltq niq niq_l
963 ! ;
964       if atq > 0 and atq_lag1 > 0 ;
965       size   = log(atq);
966       size_l = log(atq_lag1);
967       lvrg_l = bd/atq_lag1;
968       lvrg   = dlttq/atq;
969       if lvrg eq . then lvrg = 0 ;
970   run;

WARNING: The variable niq_l in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      227702 at 967:16   8651 at 968:19     
NOTE: There were 1125340 observations read from the data set RAWDATA.COMP_FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.37 seconds
      cpu time            0.37 seconds
      

971   proc sort data=fundq_clean nodupkey; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.54 seconds
      cpu time            0.67 seconds
      

972   %let winsVars2 = saleq revq ;
973   %winsor(dsetin=work.fundq_clean, dsetout=work.fundq_clean, byvar=fyearq, vars=&winsVars2,
973 ! type=winsor, pctl=1 99);

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.XTEMP has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.32 seconds
      cpu time            0.31 seconds
      


NOTE: There were 1012247 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.66 seconds
      cpu time            0.78 seconds
      


NOTE: The data set WORK.XTEMP_PCTL has 30 observations and 5 variables.
NOTE: PROCEDURE UNIVARIATE used (Total process time):
      real time           0.82 seconds
      cpu time            0.79 seconds
      


WARNING: The variable xbyvar in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: There were 1012247 observations read from the data set WORK.XTEMP.
NOTE: There were 30 observations read from the data set WORK.XTEMP_PCTL.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.42 seconds
      cpu time            0.39 seconds
      

974   
975   * get more fundq vars;
976   data fundq_add; set comp.fundq_1950_2021;
977       keep gvkey datadate intanq;
978       where datadate>'01JAN1990'd;
979   run;

NOTE: There were 1441077 observations read from the data set COMP.FUNDQ_1950_2021.
      WHERE datadate>'01JAN1990'D;
NOTE: The data set WORK.FUNDQ_ADD has 1441077 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.50 seconds
      cpu time            0.48 seconds
      

980   
981   proc sort data=fundq_add nodupkey; by gvkey datadate; run;

NOTE: There were 1441077 observations read from the data set WORK.FUNDQ_ADD.
NOTE: 1238 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_ADD has 1439839 observations and 3 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.14 seconds
      cpu time            0.29 seconds
      

982   proc sort data=fundq_clean nodupkey; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.60 seconds
      cpu time            0.76 seconds
      

983   data fundq_clean;
984       merge fundq_clean(in=a) fundq_add (in=b);
985       by gvkey datadate;
986       if a;
987   run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: There were 1439839 observations read from the data set WORK.FUNDQ_ADD.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 41 variables.
NOTE: DATA statement used (Total process time):
      real time           0.55 seconds
      cpu time            0.53 seconds
      

988   
989   * Create calendar date of fiscal period end in Compustat extract;
990   data fundq_clean; set fundq_clean;
991      if (1<=fyr<=5) then date_fyend=intnx('month',mdy(fyr,1,fyearq+1),0,'end');
992      else if (6<=fyr<=12) then date_fyend=intnx('month',mdy(fyr,1,fyearq),0,'end');
993      fqenddt=intnx('month',date_fyend,-3*(4-fqtr),'end');
994      format fqenddt date9.;
995      drop date_fyend;
996   run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 42 variables.
NOTE: DATA statement used (Total process time):
      real time           0.81 seconds
      cpu time            0.76 seconds
      

997   
998   * calculate moving sum of quarterly loss;
999   data fundq_clean; set fundq_clean;
1000      if niq <=0 then lossq = 1 ; else lossq = 0;
1001  run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 43 variables.
NOTE: DATA statement used (Total process time):
      real time           0.35 seconds
      cpu time            0.35 seconds
      

1002  
1003  proc sort data=fundq_clean; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 43 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.60 seconds
      cpu time            0.65 seconds
      

1004  proc expand data=fundq_clean out=fundq_clean;
1005      by gvkey ;
1006      id datadate;
1007      convert lossq = sum_lossq12 / transformout=(movsum 16);
1008      convert niq = ma_niq12 / transformout=(movave 16);
1009      convert ibq = sd_niq12 / transformout=(movstd 16);
1010      convert roaq = sd_roaq12 / transformout=(movstd 16);
1011  run;

WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=009879
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=010673
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013260
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013530
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013938
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=060976
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 47 variables.
NOTE: PROCEDURE EXPAND used (Total process time):
      real time           2.00 seconds
      cpu time            1.87 seconds
      

1012  
1013  data fundq_clean; set fundq_clean;
1014      drop datadate;
1015  run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 46 variables.
NOTE: DATA statement used (Total process time):
      real time           0.38 seconds
      cpu time            0.39 seconds
      

1016  
1017  * add funda vars ;
1018  data funda_clean;
1019      set rawdata.comp_funda_clean2020;
1020      if at>0 & at_l>0;
1021      asize   = log(at);
1022      asize_l = log(at_l);
1023      bm_ann = bm;
1024      roa2 = ib_l/at_l;
1025      if ni < 0 then loss_a = 1; else loss_a = 0;
1026      where datadate ne . and at>0;
1027      label asize = "Log(AT)"
1028      asize_l = "Log(AT_l)" ;
1029  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      272 at 1024:16   
NOTE: There were 182044 observations read from the data set RAWDATA.COMP_FUNDA_CLEAN2020.
      WHERE (datadate not = .) and (at>0);
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 118 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.12 seconds
      

1030  proc sort data=funda_clean nodupkey ; by gvkey fyear; run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 118 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.32 seconds
      cpu time            0.35 seconds
      

1031  
1032  proc expand data=funda_clean out=funda_clean;
1033      by gvkey;
1034      id fyear;
1035      convert loss_a = sum_loss_a5 / transformout=(movsum 10);
1036      convert roa2 = ma_roa5 / transformout=(movstd 10);
1037      convert ib = ma_ni5 / transformout=(movstd 10);
1038  run;

WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=009879
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=012161
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013260
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013530
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=028379
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=030719
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=031810
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=065561
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=065844
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=066707
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=110320
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=129631
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=144564
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 121 variables.
NOTE: PROCEDURE EXPAND used (Total process time):
      real time           0.95 seconds
      cpu time            0.90 seconds
      

1039  
1040  * add additional funda vars;
1041  data funda_add; set compa.funda_1950_2021;
1042      keep gvkey datadate intan ;
1043  run;

NOTE: There were 861623 observations read from the data set COMPA.FUNDA_1950_2021.
NOTE: The data set WORK.FUNDA_ADD has 861623 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.15 seconds
      cpu time            0.15 seconds
      

1044  proc sort data=funda_add nodupkey; by gvkey datadate; run;

NOTE: There were 861623 observations read from the data set WORK.FUNDA_ADD.
NOTE: 307572 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDA_ADD has 554051 observations and 3 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.12 seconds
      cpu time            0.20 seconds
      

1045  
1046  data funda_clean;
1047      merge funda_clean(in=a) funda_add(in=b);
1048      by gvkey datadate;
1049      if a;
1050  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: There were 554051 observations read from the data set WORK.FUNDA_ADD.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 122 variables.
NOTE: DATA statement used (Total process time):
      real time           0.27 seconds
      cpu time            0.26 seconds
      

1051  
1052  * Calculate firm age ;
1053  data funda_clean ;
1054      set funda_clean;
1055      by gvkey;
1056      if first.gvkey then
1057          firm_age=0;
1058      firm_age + 1;
1059  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 123 variables.
NOTE: DATA statement used (Total process time):
      real time           0.19 seconds
      cpu time            0.18 seconds
      

1060  proc sort data=funda_clean; by gvkey fyear;  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 123 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.28 seconds
      cpu time            0.29 seconds
      

1061  
1062  * Calculate the mean, median, and standard deviation by industry ;
1063  proc sql;
1064      create table funda_clean as
1065      select *,
1066          mean(firm_age) as ind_mean_firm_age label="Industry mean firm age",
1067          median(firm_age) as ind_med_firm_age label="Industry median firm age",
1068          std(firm_age) as ind_std_firm_age label="Industry Std firm age"
1069      from funda_clean
1070      group by sic2, fyear
1071      order by gvkey, fyear;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.FUNDA_CLEAN created, with 181286 rows and 126 columns.

1072  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.84 seconds
      cpu time            0.87 seconds
      

1073  
1074  * Merge stacked data and firm characteristics;
1075  data StateName;
1076      set rawdata.firmStateName;
1077  run;

NOTE: There were 41696 observations read from the data set RAWDATA.FIRMSTATENAME.
NOTE: The data set WORK.STATENAME has 41696 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds
      

1078  
1079  proc sql;
1080      create table Analysis as
1081      select  a.*,b.*,
1082              c.StateName label="Firm HQ State", c.ST label="State",
1083              d.at, d.at_l, d.sale, d.sale_l, d.ni, d.ib, d.ibc,
1084              d.firm_age, d.ind_mean_firm_age, d.ind_std_firm_age, d.ind_med_firm_age,
1085              d.revt, d.revt_l, d.ceq, d.datadate as datadate_ann, d.xrd, d.intan,
1086              d.ma_roa5, d.ma_ni5, d.sum_loss_a5
1087      from    Analysis as a
1088      left join fundq_clean as b
1089          on  a.gvkey=b.gvkey and a.rdq=b.rdq
1090      left join StateName as c
1091          on  a.gvkey=c.gvkey
1092      left join funda_clean as d
1093          on  a.gvkey=d.gvkey and a.fyearq=d.fyear ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable fyearq already exists on file WORK.ANALYSIS.
WARNING: Variable fqtr already exists on file WORK.ANALYSIS.
WARNING: Variable fyr already exists on file WORK.ANALYSIS.
WARNING: Variable rdq already exists on file WORK.ANALYSIS.
WARNING: Variable dlcq already exists on file WORK.ANALYSIS.
WARNING: Variable dlttq already exists on file WORK.ANALYSIS.
WARNING: Variable ibq already exists on file WORK.ANALYSIS.
WARNING: Variable ltq already exists on file WORK.ANALYSIS.
WARNING: Variable niq already exists on file WORK.ANALYSIS.
WARNING: Variable oiadpq already exists on file WORK.ANALYSIS.
WARNING: Variable oibdpq already exists on file WORK.ANALYSIS.
WARNING: Variable ppegtq already exists on file WORK.ANALYSIS.
WARNING: Variable saleq already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 51186 rows and 293 columns.

1094  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           4.82 seconds
      cpu time            4.86 seconds
      

1095  
1096  proc sql;
1097      create table Analysis as
1098      select *,
1099          max(firm_age) as firm_age2
1100      from Analysis
1101      group by cid, gvkey, year(datadate)
1102      order by cid, pairid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 51186 rows and 294 columns.

1103  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           3.47 seconds
      cpu time            3.03 seconds
      

1104  
1105  proc sql;
1106      create table Analysis as
1107      select *,
1108          mean(firm_age) as ind_mean_firm_age2 label="Industry mean firm age",
1109          median(firm_age) as ind_med_firm_age2 label="Industry median firm age",
1110          std(firm_age) as ind_std_firm_age2 label="Industry Std firm age"
1111      from Analysis
1112      group by cid, sic2
1113      order by cid, pairid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 51186 rows and 297 columns.

1114  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           3.12 seconds
      cpu time            3.00 seconds
      

1115  
1116  * calendar quarter ;
1117  data Analysis; set Analysis;
1118      calyear = year(datadate_ann);
1119      if calyear = . then calyear = year(fqenddt);
1120      calqtr = qtr(datadate);
1121  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      3558 at 1118:15   127 at 1119:35    
NOTE: There were 51186 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 51186 observations and 299 variables.
NOTE: DATA statement used (Total process time):
      real time           0.71 seconds
      cpu time            0.68 seconds
      

1122  
1123  * compute the average inst ownership over the fiscal year;
1124  proc sql;
1125      create table Analysis as
1126      select *, avg(ior) as avg_ior label="Average Qtr IOR" format comma8.4
1127      from Analysis
1128      group by gvkey, fyearq
1129      order by cid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 51186 rows and 300 columns.

1130  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           3.51 seconds
      cpu time            3.28 seconds
      

1131  data Analysis;
1132      retain gvkey fyearq fqtr rdq datadate ANNOUNCE_DATE treated post qd_rel cid pairid qd;
1133      set Analysis;
1134      if cmiss (of relstkpick1 ) eq 0;
1135  run;

NOTE: There were 51186 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16803 observations and 300 variables.
NOTE: DATA statement used (Total process time):
      real time           0.52 seconds
      cpu time            0.51 seconds
      

1136  
1137  
1138  /* ************************************************************************ */
1139  * make some vars to check the number of non-missing Relstkpick ;
1140  /* ************************************************************************ */
1141  * COUNTER is a cummulative number: 0,1,2,3,4,5 ;
1142  proc sort data=Analysis; by cid gvkey post; run;

NOTE: There were 16803 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16803 observations and 300 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.37 seconds
      cpu time            0.34 seconds
      

1143  data Analysis;
1144      set Analysis;
1145      by cID gvkey post;
1146      if first.post then COUNTER=0;
1147      COUNTER+(Relstkpick1 ne .);
1148  run;

NOTE: There were 16803 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16803 observations and 301 variables.
NOTE: DATA statement used (Total process time):
      real time           0.18 seconds
      cpu time            0.18 seconds
      

1149  
1150  proc sql;
1151      create table Analysis as
1152      select *,
1153          max(COUNTER) as COUNTER_BY_POST
1154      from Analysis
1155      group by cID, gvkey, post
1156      order by cid, gvkey, qd_rel ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16803 rows and 302 columns.

1157  
1158      create table Analysis as
1159      select *,
1160          min(post) as MIN_POST,
1161          max(post) as MAX_POST,
1162          min(COUNTER_BY_POST) as MIN_NOBS_PRE_POST
1163      from Analysis
1164      group by cID, gvkey
1165      order by cid, gvkey, qd_rel ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16803 rows and 305 columns.

1166  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.71 seconds
      cpu time            1.57 seconds
      

1167  proc sort data=Analysis ; by cID PairID treated gvkey datadate; run;

NOTE: There were 16803 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16803 observations and 305 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.38 seconds
      cpu time            0.37 seconds
      

1168  proc sort data=Analysis nodupkey; by cID treated gvkey datadate; run;

NOTE: There were 16803 observations read from the data set WORK.ANALYSIS.
NOTE: 227 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16576 observations and 305 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.36 seconds
      cpu time            0.36 seconds
      

1169  
1170  * destring SIC;
1171  data Analysis;  set Analysis;   sic_num = input(sic, 8.); label sic_num="Standard Industry
1171! Classification Code"; drop sic; run;

NOTE: There were 16576 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16576 observations and 304 variables.
NOTE: DATA statement used (Total process time):
      real time           0.20 seconds
      cpu time            0.20 seconds
      

1172  data Analysis;  set Analysis;   rename sic_num = sic; run;

NOTE: There were 16576 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16576 observations and 304 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.14 seconds
      

1173  proc sort data=Analysis nodupkey; by cid gvkey datadate; run;

NOTE: There were 16576 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16576 observations and 304 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.35 seconds
      cpu time            0.32 seconds
      

1174  
1175  
1176  /* ************************************************************************ */
1177  /* ***********************  PART 3: OTHER DATASET  ************************ */
1178  /* ************************************************************************ */
1179  * Analyst forecast and Analyst following;
1180  data afc; set rawdata.afc_fundq;
1181      keep gvkey fyearq datadate rdq numest lnanalys repdats ryear ;
1182      lnanalys = log(1+numest);
1183      if lnanalys ne . ;
1184      ryear = year(repdats);
1185  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      480890 at 1182:16   480890 at 1182:21   
NOTE: There were 988699 observations read from the data set RAWDATA.AFC_FUNDQ.
NOTE: The data set WORK.AFC has 507809 observations and 8 variables.
NOTE: DATA statement used (Total process time):
      real time           0.12 seconds
      cpu time            0.12 seconds
      

1186  proc sort data=afc nodupkey ; by gvkey repdats; run;

NOTE: There were 507809 observations read from the data set WORK.AFC.
NOTE: 1183 observations with duplicate key values were deleted.
NOTE: The data set WORK.AFC has 506626 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.12 seconds
      cpu time            0.14 seconds
      

1187  
1188  proc sql;
1189      create table afc as
1190      select  distinct gvkey, ryear, datadate,
1191              max(numest) as numest_max label="Max #Analyst (year)",
1192              max(lnanalys) as lnanalys_max label="Max #LnAnalyst (year)"
1193      from    afc
1194      group by gvkey, ryear
1195      order by gvkey, datadate;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.AFC created, with 506626 rows and 5 columns.

1196  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.26 seconds
      cpu time            0.34 seconds
      

1197  
1198  * Stock illiquidity (AIM);
1199  data aim; set rawdata.aim; run;

NOTE: There were 649518 observations read from the data set RAWDATA.AIM.
NOTE: The data set WORK.AIM has 649518 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds
      

1200  proc sort data=aim nodupkey; by gvkey datadate; run;

NOTE: There were 649518 observations read from the data set WORK.AIM.
NOTE: 374 observations with duplicate key values were deleted.
NOTE: The data set WORK.AIM has 649144 observations and 9 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.11 seconds
      cpu time            0.18 seconds
      

1201  
1202  * Price synchronicity (Morck et al 2002);
1203  data psynch ; set rawdata.pinfo_qtr_retx6d; run;

NOTE: There were 515792 observations read from the data set RAWDATA.PINFO_QTR_RETX6D.
NOTE: The data set WORK.PSYNCH has 515792 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds
      

1204  proc sort data=psynch; by gvkey fyear fqtr; run;

NOTE: There were 515792 observations read from the data set WORK.PSYNCH.
NOTE: The data set WORK.PSYNCH has 515792 observations and 9 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.14 seconds
      cpu time            0.14 seconds
      

1205  
1206  data psynch; set psynch;
1207      by gvkey fyear fqtr;
1208      if last.fqtr;
1209  run;

NOTE: There were 515792 observations read from the data set WORK.PSYNCH.
NOTE: The data set WORK.PSYNCH has 515774 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.09 seconds
      

1210  
1211  * Bushee's IICLASS data;
1212  data io_class;
1213      set rawdata.io_class2022qtr;
1214      rqtr = qtr(rdate);
1215      ryear = year(rdate);
1216  run;

NOTE: There were 737259 observations read from the data set RAWDATA.IO_CLASS2022QTR.
NOTE: The data set WORK.IO_CLASS has 737259 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.23 seconds
      cpu time            0.15 seconds
      

1217  
1218  * Financial constraints;
1219  data constraints; set rawdata.constraints; run;

NOTE: There were 162789 observations read from the data set RAWDATA.CONSTRAINTS.
NOTE: The data set WORK.CONSTRAINTS has 162789 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds
      

1220  
1221  * Opacity;
1222  data AFERR;
1223      set rawdata.AFERR;
1224      fpeyear = year(FPEDATS);
1225      drop fyear;
1226  run;

NOTE: There were 124683 observations read from the data set RAWDATA.AFERR.
NOTE: The data set WORK.AFERR has 124683 observations and 14 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
      

1227  proc sort data=AFERR nodupkey; by gvkey fpeyear; run;

NOTE: There were 124683 observations read from the data set WORK.AFERR.
NOTE: 14 observations with duplicate key values were deleted.
NOTE: The data set WORK.AFERR has 124669 observations and 14 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds
      

1228  data AFERR; set AFERR; drop fpeyear; run;

NOTE: There were 124669 observations read from the data set WORK.AFERR.
NOTE: The data set WORK.AFERR has 124669 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.03 seconds
      

1229  
1230  * Ivol quarterly;
1231  data retvol; set rawdata.retvolqtr_112824;  run;

NOTE: There were 519328 observations read from the data set RAWDATA.RETVOLQTR_112824.
NOTE: The data set WORK.RETVOL has 519328 observations and 7 variables.
NOTE: DATA statement used (Total process time):
      real time           0.05 seconds
      cpu time            0.03 seconds
      

1232  proc sort data=retvol nodupkey; by gvkey enddt; run;

NOTE: There were 519328 observations read from the data set WORK.RETVOL.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.RETVOL has 519328 observations and 7 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.12 seconds
      cpu time            0.17 seconds
      

1233  
1234  * abnormal Volume trading;
1235  data abvolume; set rawdata.abvolume; run;

NOTE: There were 747275 observations read from the data set RAWDATA.ABVOLUME.
NOTE: The data set WORK.ABVOLUME has 747275 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds
      

1236  proc sort data=abvolume nodupkey; by gvkey fyearq fqtr; run;

NOTE: There were 747275 observations read from the data set WORK.ABVOLUME.
NOTE: 29080 observations with duplicate key values were deleted.
NOTE: The data set WORK.ABVOLUME has 718195 observations and 6 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.13 seconds
      cpu time            0.20 seconds
      

1237  
1238  * CAR at meeting dates to activism data;
1239  data car_meetingdt1; set rawdata.car_meetingdt_capm_00;
1240      rename car = car_meeting00;
1241      label car = "AR[0] Meeting dt";
1242  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_00.
NOTE: The data set WORK.CAR_MEETINGDT1 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

1243  proc sort data=car_meetingdt1 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT1.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT1 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1244  
1245  data car_meetingdt2; set rawdata.car_meetingdt_capm_01;
1246      rename car = car_meeting01;
1247      label car = "CAR[0+1] Meeting dt";
1248  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_01.
NOTE: The data set WORK.CAR_MEETINGDT2 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1249  proc sort data=car_meetingdt2 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT2 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1250  
1251  data car_meetingdt3; set rawdata.car_meetingdt_capm_11_round2;
1252      rename car = car_meeting11;
1253      label car = "CAR[-1+1] Meeting dt";
1254  run;

NOTE: There were 1846 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_11_ROUND2.
NOTE: The data set WORK.CAR_MEETINGDT3 has 1846 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1255  proc sort data=car_meetingdt3 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1846 observations read from the data set WORK.CAR_MEETINGDT3.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT3 has 1846 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1256  
1257  data car_meetingdt4; set rawdata.car_meetingdt_capm_17;
1258      rename car = car_meeting17;
1259      label car = "CAR[+1+7] Meeting dt";
1260  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_17.
NOTE: The data set WORK.CAR_MEETINGDT4 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1261  proc sort data=car_meetingdt4 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT4.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT4 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1262  
1263  data car_meetingdt5; set rawdata.car_meetingdt_capm_27_round2;
1264      rename car = car_meeting27;
1265      label car = "CAR[+2+7] Meeting dt";
1266  run;

NOTE: There were 1846 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_27_ROUND2.
NOTE: The data set WORK.CAR_MEETINGDT5 has 1846 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1267  proc sort data=car_meetingdt5 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1846 observations read from the data set WORK.CAR_MEETINGDT5.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT5 has 1846 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1268  
1269  data car_meetingdt6; set rawdata.car_meetingdt_capm_214;
1270      rename car = car_meeting214;
1271      label car = "CAR[+2+14] Meeting dt";
1272  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_214.
NOTE: The data set WORK.CAR_MEETINGDT6 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1273  proc sort data=car_meetingdt6 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT6.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT6 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1274  
1275  * compute the sum of Large and Small MFOR immediately before 13D;
1276  data mfor_13d; set rawdata.mfor_13d;run;

NOTE: There were 856 observations read from the data set RAWDATA.MFOR_13D.
NOTE: The data set WORK.MFOR_13D has 856 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1277  proc sort data=mfor_13d nodupkey; by gvkey CAMPAIGN_ID; run;

NOTE: There were 856 observations read from the data set WORK.MFOR_13D.
NOTE: 4 observations with duplicate key values were deleted.
NOTE: The data set WORK.MFOR_13D has 852 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1278  
1279  * Investor Relation (IR) data;
1280  data ir; set rawdata.ir2_111624; run;

NOTE: There were 133334 observations read from the data set RAWDATA.IR2_111624.
NOTE: The data set WORK.IR has 133334 observations and 42 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.03 seconds
      

1281  
1282  * experience level of proxy solicitors;
1283  data advisory; set rawdata.advisory; run;

NOTE: There were 9262 observations read from the data set RAWDATA.ADVISORY.
NOTE: The data set WORK.ADVISORY has 9262 observations and 12 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1284  proc sort data=advisory nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 9262 observations read from the data set WORK.ADVISORY.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ADVISORY has 9262 observations and 12 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1285  
1286  * Insider Ownership;
1287  data insider; set rawdata.insider; run;

NOTE: There were 48632 observations read from the data set RAWDATA.INSIDER.
NOTE: The data set WORK.INSIDER has 48632 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

1288  
1289  * -------------------------------------------;
1290  * Merge datasets;
1291  * -------------------------------------------;
1292  proc sql;
1293  create table Analysis as
1294  select  a.*, b.*
1295  from    Analysis as a left join afc as b
1296  on      a.gvkey=b.gvkey and a.datadate = b.datadate ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable ryear already exists on file WORK.ANALYSIS.
WARNING: Variable datadate already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 306 columns.

1297  
1298  create table Analysis as
1299  select  a.*, b.insider_own
1300  from    Analysis as a left join insider as b
1301  on      a.gvkey=b.gvkey and a.datadate = b.datadate ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 307 columns.

1302  
1303  create table Analysis as
1304  select  a.*, b.aim, b.ln_oneplusaim, b.ln_aim
1305  from    Analysis as a left join aim as b
1306  on      a.gvkey=b.gvkey and a.datadate = b.datadate;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 310 columns.

1307  
1308  create table Analysis as
1309  select  a.*, b.psynch1,b.psynch2,b.psynch3,b.pinfo1,b.pinfo2,b.pinfo3
1310  from    Analysis as a left join psynch as b
1311  on      a.gvkey=b.gvkey and a.fyearq = b.fyear and a.fqtr=b.fqtr ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 316 columns.

1312  
1313  create table Analysis as
1314  select  a.*, b.*
1315  from    Analysis as a left join io_class as b
1316  on      a.gvkey=b.gvkey and a.fyearq=b.ryear and a.fqtr=b.rqtr ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable permno already exists on file WORK.ANALYSIS.
WARNING: Variable rdate already exists on file WORK.ANALYSIS.
WARNING: Variable ryear already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 325 columns.

1317  
1318  create table Analysis as
1319  select  a.*, b.kzindex,b.saindex,b.wwindex
1320  from    Analysis as a left join constraints as b
1321  on      a.gvkey=b.gvkey and a.fyearq=b.fyear+1 ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 328 columns.

1322  
1323  create table Analysis as
1324  select  a.*, b.abvolume, b.volumeturn
1325  from    Analysis as a left join abvolume as b
1326  on      a.gvkey=b.gvkey and a.fyearq=b.fyearq and a.fqtr=b.fqtr;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 330 columns.

1327  
1328  create table Analysis as
1329  select  a.*, b.*
1330  from    Analysis as a left join retvol as b
1331  on      a.gvkey=b.gvkey and a.rdq=b.enddt;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 336 columns.

1332  
1333  create table Analysis as
1334  select  a.*, b.car_meeting00
1335  from    Analysis as a left join car_meetingdt1 as b
1336  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 337 columns.

1337  
1338  create table Analysis as
1339  select  a.*, b.car_meeting01
1340  from    Analysis as a left join car_meetingdt2 as b
1341  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 338 columns.

1342  
1343  create table Analysis as
1344  select  a.*, b.car_meeting11
1345  from    Analysis as a left join car_meetingdt3 as b
1346  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 339 columns.

1347  
1348  create table Analysis as
1349  select  a.*, b.car_meeting17
1350  from    Analysis as a left join car_meetingdt4 as b
1351  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 340 columns.

1352  
1353  create table Analysis as
1354  select  a.*, b.car_meeting27
1355  from    Analysis as a left join car_meetingdt5 as b
1356  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 341 columns.

1357  
1358  create table Analysis as
1359  select  a.*, b.car_meeting214
1360  from    Analysis as a left join car_meetingdt6 as b
1361  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 342 columns.

1362  
1363  create table Analysis as
1364  select  a.*, b.*
1365  from    Analysis as a left join AFERR as b
1366  on      a.gvkey=b.gvkey and
1367          year(a.datadate)=year(b.FPEDATS);
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16576 rows and 354 columns.

1368  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           7.50 seconds
      cpu time            7.70 seconds
      

1369  proc sort data=Analysis nodupkey; by cid gvkey rdq; run;

NOTE: There were 16576 observations read from the data set WORK.ANALYSIS.
NOTE: 21 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16555 observations and 354 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.29 seconds
      cpu time            0.29 seconds
      

1370  
1371  *other datasets;
1372  proc sql;
1373  create table Analysis as
1374  select  a.*, b.*
1375  from    Analysis as a left join mfor_13d as b
1376  on      a.gvkey=b.gvkey and a.CAMPAIGN_ID=b.CAMPAIGN_ID ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable campaign_id already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16555 rows and 362 columns.

1377  
1378  create table Analysis as
1379  select  a.*, b.*
1380  from    Analysis as a left join advisory as b
1381  on      a.CAMPAIGN_ID=b.CAMPAIGN_ID ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable CAMPAIGN_ID already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16555 rows and 373 columns.

1382  
1383  create table Analysis as
1384  select  a.*,
1385          b.ir_freq, b.ir_dum, b.ir_freq_ann, b.ir_max,
1386          b.ir_sic2, b.ir_std_sic2, b.ir_sic2_ann,
1387          b.ir_avg, b.ir_std, b.ir_min, b.ir_max,
1388          b.ir_avg_last4, b.ir_std_last4,
1389          b.ir_avg_last8, b.ir_std_last8,
1390          b.ir_avg_last12, b.ir_std_last12,
1391          b.ir_avg_last16, b.ir_std_last16,
1392          b.ir_freq_movave4, b.ir_freq_movave8, b.ir_freq_movave12, b.ir_freq_movave16,
1393          b.ir_freq_movstd4, b.ir_freq_movstd8, b.ir_freq_movstd12, b.ir_freq_movstd16
1394  from    Analysis as a left join ir as b
1395  on      a.gvkey=b.gvkey and
1396          year(a.rdq)=b.year and qtr(a.rdq)=b.quarter;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable ir_max already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16555 rows and 399 columns.

1397  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           2.11 seconds
      cpu time            2.26 seconds
      

1398  proc sort data=Analysis nodupkey; by cid gvkey rdq; run;

NOTE: There were 16555 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16555 observations and 399 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.38 seconds
      cpu time            0.35 seconds
      

1399  
1400  * drop unwanted vars;
1401  data Analysis ;
1402      set Analysis;
1403      drop outcome_desc company_fee_desc dissident_fee_desc dir_off_own_desc
1403! campaign_synopsis campaign_title iso_country
1404      target: actfinanc: actlegal: actpr: ;
1405  run;

NOTE: There were 16555 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16555 observations and 355 variables.
NOTE: DATA statement used (Total process time):
      real time           0.16 seconds
      cpu time            0.15 seconds
      

1406  
1407  * Export data to Stata file;
1408  %let FFP =
1408! "C:\Users\hpham13\Projects\mf_activism\empirical\1_code\final_package_acceptance\assembledd
1408! ata_negcar.dta";
1409  proc export data = Analysis outfile = &FFP. replace;
1409!                                                      run;

NOTE: The export data set has 16555 observations and 355 variables.
NOTE: "C:\Users\hpham13\Projects\mf_activism\empirical\1_code\final_package_acceptance\assembledd
      ata_negcar.dta" file was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.12 seconds
      cpu time            0.07 seconds
      

1410  
1411  
1412  proc printto;
1413  run;

